Сервис обработки заявлений ЕПГУ
Назначение
Сервис реализует прием заявлений с ЕПГУ и унифицированное их преобразование в params JSON и XML форматы.
Описание
Сервис реализован с помощью библиотеки mz-library с возможностью обработки множества типов входящих и исходящих запросов.
Может конфигурироваться статически через заполнение секции mz.services в application.yaml. Также поддерживается хранение конфигураций в БД Postgres.
Это полезно, когда перечень услуг меняется динамически. В этом случае, сервис получает информацию об изменениях из топиков кафки и актуализирует состояние БД.
Основные функции
* Прием зарегистрированных типов заявлений
* Тестирование отправки и обработки заявлений
* Обработка и пересылка ответов по заявлениям
Сервис имеет доступ к следующим источникам данных:
- база данных Postgres
- брокер сообщений kafka
Сервис взаимодействует с таблицами БД: attachment, petition, request
Сервис слушает топики:
- mz.petition.out.response
- mz.petition.in.request
- mz.petition.created
- service.registry.service.saved
- mz.petition.updated
- mz.petition.deleted
Пример сообщения из топика mz.petition.out.response:
{ "cancelAllowed": false, "orderId": { "pguId": 29102107576004 }, "namespaceURI": "urn://rostelekom.ru/NotificationCompliance/1.0.4", "statusCode": { "techCode": "6" }} |
Пример сообщения из топика mz.petition.in.request:
<tns:request oktmo="MNSV75_3T" xmlns="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns2="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/basic/1.1" xmlns:ns3="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/faults/1.1" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="urn://rostelekom.ru/SmallNations/1.0.1" xmlns:xml="http://www.w3.org/XML/1998/namespace"> <tns:Service> <tns:currentDate>25.10.2023</tns:currentDate> <tns:userType>PERSON_RF</tns:userType> <tns:orderId>3500016961</tns:orderId> <tns:orderStatusCode>draft</tns:orderStatusCode> <tns:TargetId>-10000000278</tns:TargetId> <tns:TargetName>Учет лиц, относящихся к коренным малочисленным народам Российской Федерации</tns:TargetName> <tns:DepartmentId>-10003772917</tns:DepartmentId> <tns:DepartmentName>Уполномоченный орган субъекта Российской Федерации</tns:DepartmentName> <tns:okato>40000000000</tns:okato> </tns:Service> <tns:Goal>1</tns:Goal> <tns:VariantChoice> <tns:KP_OA_04>2</tns:KP_OA_04> <tns:KP_OA_03>1</tns:KP_OA_03> <tns:KP_OA_05>1</tns:KP_OA_05> <tns:KP_OA_06>1</tns:KP_OA_06> <tns:AddFamilyMember>true</tns:AddFamilyMember> <tns:KP_OA_07>1</tns:KP_OA_07> <tns:KP_OA_08>1</tns:KP_OA_08> <tns:TraditionalActivityType> <tns:IsAnimalHusbandry>true</tns:IsAnimalHusbandry> <tns:IsProcessingLivestockProducts>false</tns:IsProcessingLivestockProducts> <tns:IsDogBreeding>false</tns:IsDogBreeding> <tns:IsAnimalBreeding>false</tns:IsAnimalBreeding> <tns:IsBeekeeping>false</tns:IsBeekeeping> <tns:IsFishing>false</tns:IsFishing> <tns:IsCommercialHunting>false</tns:IsCommercialHunting> <tns:IsAgriculture>false</tns:IsAgriculture> <tns:IsWoodHarvesting>false</tns:IsWoodHarvesting> <tns:IsGathering>false</tns:IsGathering> <tns:IsMining>false</tns:IsMining> <tns:IsCrafts>true</tns:IsCrafts> <tns:IsBuilding>false</tns:IsBuilding> </tns:TraditionalActivityType> </tns:VariantChoice> <tns:DelegateInfo>1</tns:DelegateInfo> <tns:RecipientPersonalData> <tns:fullfio>Тамаркина Ирина Никаноровна</tns:fullfio> <tns:lastname>Тамаркина</tns:lastname> <tns:firstname>Ирина</tns:firstname> <tns:middlename>Никаноровна</tns:middlename> <tns:snils>300-499-727 63</tns:snils> <tns:gender>2</tns:gender> <tns:dateBirth>07.05.1969</tns:dateBirth> <tns:citizenship>Уфа</tns:citizenship> <tns:Phone>+7(998)8700949</tns:Phone> <tns:Email>zmFbSJfO@ya.ru</tns:Email> <tns:regAddress>307055, обл. Курская, р-н. Медвенский, д. Амосовка, д. 20</tns:regAddress> <tns:DocumentPersonal> <tns:typeDoc>Паспорт гражданина РФ</tns:typeDoc> <tns:nameDoc>Паспорт гражданина РФ</tns:nameDoc> <tns:docseries>2845</tns:docseries> <tns:docnumber>854320</tns:docnumber> <tns:issuedate>27.10.2017</tns:issuedate> <tns:issueorg>Отделом внутренних дел Ленинского р-на гор. Астрахань</tns:issueorg> <tns:issueidPassportRF>123112</tns:issueidPassportRF> </tns:DocumentPersonal> </tns:RecipientPersonalData> <tns:CompetentOrganization> <tns:OrganizationID>1157746452280</tns:OrganizationID> <tns:Name>ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ДЕЛАМ НАЦИОНАЛЬНОСТЕЙ</tns:Name> </tns:CompetentOrganization> <tns:Block_NationalityName> <tns:NationalityName>Абазины</tns:NationalityName> </tns:Block_NationalityName> <tns:Block_FamilyDataBlock> <tns:FamilyDataBlock> <tns:RelationDegree>Сын</tns:RelationDegree> <tns:LastName1>Ывпам</tns:LastName1> <tns:Firstname1>Фуцыам</tns:Firstname1> <tns:Middlename1>Фцуа</tns:Middlename1> <tns:DateBirth>07.10.2023</tns:DateBirth> <tns:PlaceBirth>Цфысяыв</tns:PlaceBirth> <tns:gender>1</tns:gender> <tns:NationalityName>Абазины</tns:NationalityName> <tns:DocumentPersonal1>Свидетельство о рождении</tns:DocumentPersonal1> <tns:Number_BirthCertificate>123</tns:Number_BirthCertificate> <tns:Date_BirthCertificate>12.10.2023</tns:Date_BirthCertificate> <tns:Issuer_BirthCertificate>Выамчваи</tns:Issuer_BirthCertificate> <tns:snills1>164-633-860 83</tns:snills1> </tns:FamilyDataBlock> </tns:Block_FamilyDataBlock> <tns:Block_OrgName> <tns:OrganizationName>Ыуквапи</tns:OrganizationName> <tns:OrganizationINN>2624188808</tns:OrganizationINN> <tns:OrganizationOGRN>5026867947640</tns:OrganizationOGRN> </tns:Block_OrgName> <tns:MethodGettingResults> <tns:IsPaperDocumentRequired>false</tns:IsPaperDocumentRequired> </tns:MethodGettingResults> <tns:Documents> <tns:NationalityInfoDocumentsBlock> <tns:CodeDocument>NationalityInfo</tns:CodeDocument> <tns:Name>testpdf.pdf</tns:Name> <tns:URL>f_NationalityInfo.FileUploadComponent.NationalityInfo.3500016961</tns:URL> <tns:type>application/pdf</tns:type> </tns:NationalityInfoDocumentsBlock> </tns:Documents></tns:request> |
Пример сообщения из топика service.registry.service.saved:
{ "success": true, "message": "Success", "data": [ { "id": "79133485-fad0-4c20-8085-f8d8115ef125", "modified": 1698749962, "schema": "Service", "fullName": "Верификация списков граждан, пострадавших в чрезвычайных ситуациях", "shortName": "Верификация списков граждан, пострадавших в чрезвычайных ситуациях", "name": "MassMchsVerificationImport", "targetId": "-10000000564", "kcrImport": false, "epguImport": false, "state": "inProgress", "modificationVersion": 343, "version": "1.343", "includeReception": true, "goalsList": [ { "label": "Проверка обоснованности выделяемого объёма средств на выплату пострадавшим гражданам", "value": "1" } ], "petitionType": "request@urn://rostelekom.ru/MassMchsVerificationImport", "epguFromTag": "request@urn://rostelekom.ru/MassMchsVerificationImport", "epguToTag": "MassMchsVerificationImport@MassMchsVerificationImport", "checkListIsMandatory": false, "updatePermission": [ "d3372d2b-8802-48ea-835b-cc3bb8e23b93", "efe958b8-ed69-41a1-8f79-5ebe21f18df9", "83582a39-cda8-446a-b019-abd957c20ce4", "f5993cde-36ee-4e7f-ac4e-2710b6a792c6", "a593dbaa-f62e-4b59-bf48-00c242d21fed", "09640bdc-2efb-4aca-8b5e-a81b21bd7c4b" ], "preorder": false, "rgyApplied": false, "multiAuthority": false, "credentialTransferred": false, "_links.changeLogs": "008d688e-9953-4a05-82f8-bc1a32aa3c06", "_links.dictionaries": [ "emergencyListName", "upload_decision_type" ], "_links.form": "fa0d8051-e942-4813-a7e7-fd39bf77393e", "_links.documents": [ "d228aa74-4d5b-419f-84bf-c1429759fa6f", "9cd88792-ff12-4ee6-8cd2-f141ce8ec77f", "e0f23251-3130-4279-b25e-2e2a0aa3f6de", "5646231b-aa87-4727-8f8b-8f633d786b7d", "aafdfeba-3a33-4d81-951a-6a5e57c2b369" ], "_links.processes": [ "96fce033-4bf0-4f1b-ac20-cd200dca2f4e" ], "_links.formsExtra": [ "275340fe-15cb-4065-a9fd-44393ceb87b4", "dbdea599-aab9-4fa6-802c-51253257c9a2" ], "numberPrefix": "МЧСВ", "useBaseImport": false, "changeLogs": "008d688e-9953-4a05-82f8-bc1a32aa3c06", "_hasSavedLinks": true, "settingsId": "f0294286-516b-4b67-8bd0-12893e4c57bf", "hasSDD": false } ], "origin": "http", "documentIds": [ "79133485-fad0-4c20-8085-f8d8115ef125" ], "modified": 1698749962} |
Сервис постит сообщения в топики:
- mz.petition.in.response
- mz.petition.out.request
- mz.petition.out.json.request
Пример сообщения из топика mz.petition.in.response:
<tns:FormResponse xmlns:tns="urn://rostelekom.ru/LargeChildrenZY/1.0.4"><tns:changeOrderInfo><tns:orderId><tns:pguId>3500042423</tns:pguId></tns:orderId><tns:statusCode><tns:techCode>1</tns:techCode></tns:statusCode><tns:cancelAllowed>false</tns:cancelAllowed></tns:changeOrderInfo></tns:FormResponse> |
Пример сообщения из топика mz.petition.out.request:
<params> <namespaceURI>urn://rostelekom.ru/LargeChildrenZY/1.0.4</namespaceURI> <concentratorServiceType>LargeChildrenZY</concentratorServiceType> <concentratorServiceTypeVersion>1.0.4</concentratorServiceTypeVersion> <oktmo>MNSV75_3T</oktmo> <Service> <currentDate>30.10.2023</currentDate> <userType>PERSON_RF</userType> <orderId>3500042423</orderId> <orderStatusCode>draft</orderStatusCode> <TargetId>-10000000217</TargetId> <TargetName>Постановка граждан на учет в качестве лиц, имеющих право на предоставление земельных участков в собственность бесплатно</TargetName> <DepartmentId>-10003772917</DepartmentId> <DepartmentName>Уполномоченный орган субъекта Российской Федерации</DepartmentName> <okato>14000000000</okato> </Service> <Goal>1</Goal> <VariantChoice/> <DelegateInfo>1</DelegateInfo> <RecipientPersonalData> <fullfio>Иванов Иван Иванович</fullfio> <lastname>Иванов</lastname> <firstname>Иван</firstname> <middlename>Иванович</middlename> <snils>000-000-600 22</snils> <gender>1</gender> <dateBirth>05.11.1952</dateBirth> <citizenship>РОССИЯ</citizenship> <Phone>+7(998)1119213</Phone> <Email>JdTovRwf@ya.ru</Email> <regAddress>309372, обл. Белгородская, р-н. Грайворонский, г-к. Белгород-22, ул. Ленина</regAddress> <DocumentPersonal> <typeDoc>Паспорт гражданина РФ</typeDoc> <nameDoc>Паспорт гражданина РФ</nameDoc> <docseries>1234</docseries> <docnumber>567899</docnumber> <issuedate>01.07.2023</issuedate> <issueorg>Оленегорским ГОВД Мурманской области</issueorg> <issueidPassportRF>512-011</issueidPassportRF> </DocumentPersonal> </RecipientPersonalData> <CompetentOrganization> <OrganizationID>1033107000728</OrganizationID> <Name>Администрация городского округа город Белгород (управление административной технической инспекции)</Name> </CompetentOrganization> <InformationAboutSpouse/> <InformationAboutChildren/> <RecipientCategory> <OtherCategory>true</OtherCategory> <OtherCategoryTextInput>впвп</OtherCategoryTextInput> </RecipientCategory> <MethodGettingResults> <IsPaperDocumentRequired>false</IsPaperDocumentRequired> </MethodGettingResults> <Documents> <CategoryAuthorityDocument> <CodeDocument>CategoryAuthorityDocument</CodeDocument> <Name>19.pdf</Name> <URL>f_CategoryAuthorityDocument.FileUploadComponent.CategoryAuthorityDocument.3500042423</URL> <type>application/pdf</type> </CategoryAuthorityDocument> </Documents></params> |
Пример сообщения из топика mz.petition.out.json.request:
{ "concentratorServiceType": "NotificationCompliance", "Service": { "orderId": 30100520224191, "orderStatusCode": "draft", "currentDate": "01.02.2022", "DepartmentName": "Уполномоченный орган субъекта Российской Федерации", "userType": "PERSON_RF", "DepartmentId": -10003772917, "TargetName": "Уведомление о планируемом строительстве или об изменении планируемых параметров объекта индивидуального жилищного строительства", "TargetId": -10000115325, "okato": 14401000000 }, "VariantChoice": { "KP_OA_09": 1, "KP_OA_07": 2, "KP_OA_06": 2, "KP_OA_05": 1, "KP_OA_04": 1, "KP_OA_10": 1 }, "LimitParameters": { "Number": 23452, "Issuer": "Уполномоченный орган", "Date": "13.01.2022" }, "DelegateInfo": 1, "RecipientPersonalData": { "firstname": "Иван", "Email": "akurbanov@it-one.ru", "gender": 1, "Phone": "+7(916)3119400", "citizenship": "РОССИЯ", "DocumentPersonal": { "issueidPassportRF": 889898, "docseries": "0898", "typeDoc": "Паспорт гражданина РФ", "issuedate": "05.08.2016", "docnumber": 667667, "issueorg": "Отделом УФМС России по г. Ярославль", "nameDoc": "Паспорт гражданина РФ" }, "middlename": "Иванович", "fullfio": "Иванов Иван Иванович", "dateBirth": "13.11.1960", "snils": "000-000-600 22", "regAddress": "150003, обл. Ярославская, г. Ярославль, пр-кт. Октября, д. 10, кв. 3", "lastname": "Иванов" }, "Goal": 1, "oktmo": "MNSV75_3T", "Documents": { "SchematicRepresentationConstruction": { "CodeDocument": "SchematicRepresentationConstruction", "type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "URL": "f4_SchematicRepresentationConstruction.FileUploadComponent.SchematicRepresentationConstruction.0", "Name": "Заявление СУБ.docx" } }, "namespaceURI": "urn://rostelekom.ru/NotificationCompliance/1.0.2", "concentratorServiceTypeVersion": "1.0.2", "Object": { "Floor": 1, "UseTypeRadio": 1, "Area": 100, "Front": "от фасада - 6 метров, слева - 3 метра, сзади – 10 метров; справа – 8 метров", "IsUndividedObjectConfirmed": true, "Height": 11 }, "CompetentOrganization": { "OrganizationID": 5623986796545, "Name": "Корневая организация автотестирования" }, "MethodGettingResults": { "IsPaperDocumentRequired": false }, "LandPlot": { "FIASLandPlot": "309518, обл. Белгородская, г. Старый Оскол, мкр. Звездный, д. 13, кв. 54", "FIASLandPlot.fias_full_code": "974a526b-7dd1-40c3-959a-032c4f2742a4", "IsDescriptionLocationRequired": false, "LandPlotUseType": "Для индивидуального жилищного строительства", "LandPlotCadastralNumber": "56:34:5667456:345234456", "LandPlotTitleDocBlock": { "Number": 67454, "Date": "01.02.2022", "DocumentName": "Документ" } }} |
Сервис по REST обращается к сервису mz-mock-adapter: POST /petition

Добавить комментарий